package com.yida.gwj.basis.mapper;

import com.yida.gwj.basis.domain.GwjInitBusinessOwner;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 业务业主信息（基础数据管理模块）Mapper接口
 *
 * @author lqq
 * @date 2022-12-15
 */
public interface GwjInitBusinessOwnerMapper {

	/**
	 * 查询业务业主信息（基础数据管理模块）
	 *
	 * @param bizOwnerId 业务业主信息（基础数据管理模块）主键
	 * @return 业务业主信息（基础数据管理模块）
	 */
	GwjInitBusinessOwner selectById(Long bizOwnerId);

	/**
	 * 查询业务业主信息（基础数据管理模块）
	 *
	 * @param businessOwner 业务业主信息（基础数据管理模块）
	 * @return 业务业主信息（基础数据管理模块）
	 */
	GwjInitBusinessOwner selectOne(GwjInitBusinessOwner businessOwner);

	/**
	 * 查询业务业主信息（基础数据管理模块）列表
	 *
	 * @param businessOwner 业务业主信息（基础数据管理模块）
	 * @return 业务业主信息（基础数据管理模块）集合
	 */
	List<GwjInitBusinessOwner> selectList(GwjInitBusinessOwner businessOwner);

	/**
	 * 查询业务业主信息（基础数据管理模块）列表
	 *
	 * @param houseCodes 房屋标识码
	 * @param bizId      业务ID
	 * @return 业务业主信息（基础数据管理模块）集合
	 */
	List<GwjInitBusinessOwner> selectListInCode(@Param("houseCodes") String[] houseCodes, @Param("bizId") Long bizId);

	/**
	 * 新增业务业主信息（基础数据管理模块）
	 *
	 * @param businessOwner 业务业主信息（基础数据管理模块）
	 * @return 结果
	 */
	int insert(GwjInitBusinessOwner businessOwner);

	/**
	 * 新增业务业主信息（基础数据管理模块）
	 *
	 * @param businessOwners 业务业主信息（基础数据管理模块）
	 * @return 结果
	 */
	int insertBatch(@Param("businessOwners") List<GwjInitBusinessOwner> businessOwners);

	/**
	 * 修改业务业主信息（基础数据管理模块）
	 *
	 * @param businessOwner 业务业主信息（基础数据管理模块）
	 * @return 结果
	 */
	int updateById(GwjInitBusinessOwner businessOwner);

	/**
	 * 修改业务业主信息（基础数据管理模块）
	 *
	 * @param businessOwners 业务业主信息（基础数据管理模块）
	 * @return 结果
	 */
	int updateBatch(@Param("businessOwners") List<GwjInitBusinessOwner> businessOwners);

	/**
	 * 根据业务业主ID删除业务业主信息（基础数据管理模块）
	 *
	 * @param bizOwnerId 业务业主信息（基础数据管理模块）主键
	 * @return 结果
	 */
	int deleteById(Long bizOwnerId);

	/**
	 * 根据业务ID删除业务业主信息（基础数据管理模块）
	 *
	 * @param bizId 业务ID（基础数据管理模块）
	 * @return 结果
	 */
	int deleteByBizId(Long bizId);

	/**
	 * 根据房屋标识码和地区ID删除业务业主信息（基础数据管理模块）
	 *
	 * @param houseCode 房屋标识码（基础数据管理模块）
	 * @param bizId     业务ID（基础数据管理模块）
	 * @return 结果
	 */
	int deleteByHouseCodesAndBizId(@Param("houseCodes") List<String> houseCode, @Param("bizId") Long bizId);

	/**
	 * 批量删除业务业主信息（基础数据管理模块）
	 *
	 * @param bizOwnerIds 需要删除的数据主键集合
	 * @return 结果
	 */
	int deleteByIds(Long[] bizOwnerIds);

}
